1
Sự cần thiết của Rust không an toàn
AI034Lesson 19
00:00

Ngôn ngữ bí mật bên trong

Rust có một bí mật: thực tế nó là hai ngôn ngữ trong một. Trong khi Rust an toàn là người bảo vệ bạn, trình biên dịch Rust về bản chất cẩn trọng. Nó tuân theo một triết lý nghiêm ngặt: tốt hơn là từ chối một chương trình hợp lệ và an toàn thay vì vô tình cho phép một chương trình nguy hiểm duy nhất. Điều này tạo ra khoảng cách giữa những gì phần cứng có thể làm được và điều mà trình biên dịch có thể chứng minh.

Thực tế khắc nghiệt

Hãy tưởng tượng trình biên dịch như một người gác cổng nghiêm ngặt. Trong ví dụ mã nguồn của chúng ta, điều kiện khớp nếu y áp dụng cho toàn bộ nhóm mẫu (4 | 5 | 6). Tính cẩn trọng này ưu tiên phản ánh cách mà Bộ kiểm tra mượn hoạt động; nó áp dụng các quy tắc toàn cục, không nhượng bộ lên bộ nhớ của bạn. Nhưng phần cứng máy tính nền tảng thì bản chất không an toàn; nó không hiểu khái niệm sở hữu hay thời hạn sống. Để xây dựng các công cụ hiệu suất cao như split_at_mut, chúng ta phải bước vào vùng Rust không an toàn 'lối thoát' để thực hiện các thao tác về mặt kỹ thuật là hợp lệ nhưng về mặt logic quá phức tạp để phân tích tĩnh của trình biên dịch có thể xử lý.

Tất cả mã nguồn an toàn về mặt kỹ thuậtĐã được chứng minh an toàn (Bộ kiểm tra mượn)Sự cần thiết của Không an toàn

Khoảng cách giữa hai vòng tròn đỏ và xanh là nơi Rust không an toàn tồn tại — cho phép chúng ta tận dụng tối đa tiềm năng của phần cứng khi phân tích tĩnh thất bại.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>